let movie_yh_service = {
    // 初始化热点影片
    created: function () {
        // 查询所有的影片
        this.findMovieAll(1, 8)
    },

    // 分页功能 改变下拉框中每页的记录数时触发
    handleSizeChange: function (val) {
        // 重新搜索
        this.findMovieAll(this.page.pageNum, val);
    },
    // 分页功能 点击导航按钮时触发
    handleCurrentChange: function (val) {
        // 重新搜索
        this.findMovieAll(val, this.page.pageSize);
    },

    // 改变操作卡片
    changeOperateCard: function (card, movieId) {
        if (card == 'update') {
            this.findMovieById(movieId);
        }
        this.operateCard = card;
    },

    // 监听卡片的变化
    watchCard: function (newMode, oldMode) {
        if (newMode == 'add') {
            // 初始化导演下拉框
            this.findDirectorAll();
            // 初始化演员下拉框
            this.findActorAll();
            // 初始化影片类型列表
            this.findMovieTypeAll();
            // 初始化制片地区列表
            this.findMovieCountryAll()
        }
        if (newMode == 'update') {
            // 初始化导演下拉框
            this.findDirectorAll();
            // 初始化演员下拉框
            this.findActorAll();
            // 初始化影片类型列表
            this.findMovieTypeAll();
            // 初始化制片地区列表
            this.findMovieCountryAll();
        }
    },

    // 添加演职人员列表
    addActorNum: function () {
        this.movie.actorNum++;
    },

    // 移除演职人员列表
    removeActor: function (index) {
        if (this.movie.excludeIndex.length < this.movie.actorNum - 1) {
            // 清空主演信息
            this.clearMovieStar();
            // 移除演员信息
            this.movie.excludeIndex.push(index);
        } else {
            this.$message({
                message: '无法移除！已经到底线了',
                type: 'warning'
            });
        }
    },

    // 初始化演员数据（获取演员列表）
    // 通过clearStar控制是否清理主演信息；通常在下拉框中改变了演员信息时需要清理
    initActorData: function (clearStar) {
        // 清空出演列表容器
        this.movie.movieActor = [];
        // 清空出演人员
        this.selectActor = [];
        this.movie.movieActorIds = [];
        if (clearStar) {
            // 清空主演信息
            this.clearMovieStar();
        }
        // 获取列表的长度
        var len = document.getElementsByName("actorName").length;
        // 提取关键信息并拼接出演列表
        for (i = 0; i < len; i++) {
            var actorHtmlElement = document.getElementsByName("actorName").item(i);
            var actorName = actorHtmlElement.value
            if (actorName != '请选择演员') {
                // 记录出演的演员
                this.selectActor.push(actorName)
                // 根据姓名从演员列表中匹配到演员信息，并取出演员的ID
                for (a = 1; a < this.actorList.length; a++) {
                    var actor = this.actorList[a]
                    if (actor.actorName == actorName) {
                        this.movie.movieActorIds.push(actor.actorId)
                    }
                }
            }
            var roleHtmlElement = document.getElementsByName("movieRole").item(i);
            var movieRole = roleHtmlElement.value
            if (actorName != '' && movieRole != '') {
                // 拼接出演列表
                var movieActor = actorName + ":" + movieRole;
                this.movie.movieActor.push(movieActor);
            }
        }
    },

    // 改变影片的导演
    changeMovieDirector: function (element) {
        var director = element.value;
        this.movie.movieDirectorId = director;
    },

    // 改变影片的类型（选中影片类型时触发）
    changeMovieType: function (element) {
        var type = element.value;
        if (this.movie.movieType != '') {
            this.movie.movieType = this.movie.movieType + " ";
        }
        // 更新影片的类型
        this.movie.movieType = this.movie.movieType + type;
        // 记录选中的类型
        this.movie.excludeType.push(type);
    },
    updateMovieType: function (element) {
        var type = element.value;
        if (this.updateMovie.movie.movieType != '') {
            this.updateMovie.movie.movieType = this.updateMovie.movie.movieType + " ";
        }
        // 更新影片的类型
        this.updateMovie.movie.movieType = this.updateMovie.movie.movieType + type;
        // 记录选中的类型
        this.updateMovie.excludeType.push(type);
    },

    // 改变影片的主演（选中主演时触发）
    changeMovieStar: function (element) {
        this.initActorData(false);               // 刷新出演人员名单
        var movieStar = element.value;
        // 校验当前演员是否在出演人名单之中
        if (!this.selectActor.includes(movieStar)) {
            this.$message({
                message: '该演员已经不在出演名单中了，添加失败！',
                type: 'warning'
            });
            // 重置选项框
            this.resetMovieStar()
            return;
        }
        if (this.movie.movieStar.length != 0) {
            this.movie.movieStarName = this.movie.movieStarName + " ";
        }
        // 更新显示的主演姓名
        this.movie.movieStarName = this.movie.movieStarName + movieStar;
        // 记录选中的主演信息
        this.movie.excludeStar.push(movieStar);
        // 记录影片主演ID
        for (i = 0; i < this.actorList.length; i++) {
            var actor = this.actorList[i];
            if (actor.actorName == movieStar) {
                var actorID = actor.actorId;
                this.movie.movieStar.push(actorID)
            }
        }
    },

    // 改变制片地区（选中制片地区时触发）
    changeMovieCountry: function (element) {
        var country = element.value;
        this.movie.movieCountry = country;
    },

    // 清空影片的类型
    clearMovieType: function () {
        this.movie.movieType = "";
        this.movie.excludeType = [];
        this.resetMovieType('add');
    },
    clearMovieTypeOfUpdate: function () {
        this.updateMovie.movie.movieType = "";
        this.updateMovie.excludeType = [];
        this.resetMovieType('update');
    },

    // 清空影片的主演信息
    clearMovieStar: function () {
        // 清空所有的主演信息
        this.movie.movieStar = [];
        this.movie.movieStarName = '';
        this.movie.excludeStar = [];
        // 重置选项框
        this.resetMovieStar()
    },

    // 重置主演的选项框（使选项框不默认选中任何演员）
    resetMovieStar: function () {
        var htmlElement = document.getElementById("movieStar");
        for (i = 0; i < htmlElement.length; i++) {
            htmlElement.options[i].selected = false;
        }
    },

    // 重置影片类型的选项框
    resetMovieType: function (type) {
        if (type == 'update') {
            var htmlElement = document.getElementById("update-MovieType");
            for (i = 0; i < htmlElement.length; i++) {
                htmlElement.options[i].selected = false;
            }
        }
        if (type == 'add') {
            var htmlElement = document.getElementById("add-MovieType");
            for (i = 0; i < htmlElement.length; i++) {
                htmlElement.options[i].selected = false;
            }
        }
    },

    // 图片预览
    showMovieImg: function (cardID) {
        var file = document.getElementById(cardID).files[0];    // 选中的图片
        var img = null;     // 预览图片的元素
        // 影片海报预览
        if (cardID == 'addFile') {
            img = document.getElementById("imgId-add");
        }
        // 演员写真预览
        if (cardID == 'addActorImg') {
            img = document.getElementById("img-actor");
        }
        // 导演写真预览
        if (cardID == 'addDireImg') {
            img = document.getElementById("img-dire");
        }
        if (cardID == 'updateFile') {
            img = document.getElementById("imgId-update");
        }
        if (img == null) {
            return;
        }
        var fileReader = new FileReader()   // 创建FileReader对象
        fileReader.readAsDataURL(file)      // 开始读取文件
        fileReader.onload = function (ev) {
            img.src = ev.target.result;
        }
    }
}